/**
 * Clase que contine métodos que muestran o reciben la información de forma
 * gráfica.
 */
package tools.GUI;

import javax.swing.*;

/**
 *
 * @author Félix Marín Ramírez | felixmurcia@gmail.com
 * @version 1.0
 */
public class PanelGUI extends JLabel implements java.io.Serializable {

    /**
     *
     * @param mensaje Variable de tipo String que se pasa como argumento y que
     * contiene el mensaje que se mostrará en la ventana.
     */
    public static void mensajeError(String mensaje) {
        JOptionPane.showMessageDialog(null, mensaje, "Error", JOptionPane.ERROR_MESSAGE);
    }

    /**
     *
     * @param mensaje Variable de tipo String que se pasa como argumento y que
     * contiene el mensaje que se mostrará en la ventana.
     */
    public static void advertencia(String mensaje) {
        JOptionPane.showMessageDialog(null, mensaje, "Aviso", JOptionPane.WARNING_MESSAGE);
    }

    /**
     *
     * @param cuestion Variable de tipo String que se pasa como argumento y que
     * contiene la pregunta que se mostrará en la ventana.
     * @return Devuelve un String con la respuesta del usuario.
     */
    public static String pregunta(String cuestion) {
        String op1 = JOptionPane.showInputDialog(null, cuestion, "Introduzca la respuesta", JOptionPane.QUESTION_MESSAGE);
        return op1;
    }

    public static String contraseña() {
        String passwd = "";
        String cadena = "";
        JPasswordField passwordField = new JPasswordField();
        Object[] obj = {"Inserte la contraseña:\n\n", passwordField};
        Object stringArray[] = {"OK", "Cancelar"};
        if (JOptionPane.showOptionDialog(null, obj, "Contraseña",
                JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, stringArray, obj) == JOptionPane.YES_OPTION) {
            passwd = passwordField.getPassword().toString();
            cadena = passwordField.getText();
        }   
       
        return cadena;
    }

    /**
     *
     * @param mensaje Variable de tipo String que se pasa como argumento y que
     * contiene el mensaje que se mostrará en la ventana.
     */
    public static void informacion(String mensaje) {
        JOptionPane.showMessageDialog(null, mensaje, "Información", JOptionPane.INFORMATION_MESSAGE);
    }

    /**
     *
     * @param opciones Array de tipo String el cual contiene la lista de
     * opciones que serán mostradas al usuario.
     * @return Devuelve un entero que representa la opcion eleginda por el
     * usuario.
     */
    public static int listaOpciones(String[] opciones) {
        int opcion = JOptionPane.showOptionDialog(null, "Elige una opción", "Lista de opciones", JOptionPane.INFORMATION_MESSAGE, JOptionPane.PLAIN_MESSAGE, null, opciones, opciones[1]);
        return opcion;
    }

    public static Object desplegable(String[] lista) {
        Object seleccion = JOptionPane.showInputDialog(null, "Seleccione opcion", "Selector de opciones", JOptionPane.QUESTION_MESSAGE, null, lista, lista[0]);
        return seleccion;
    }
}
